package com.wanxi.service.Impl;

import com.wanxi.dao.ContactDao;
import com.wanxi.dao.Impl.ContactDaoImpl;
import com.wanxi.dto.ResultDTO;
import com.wanxi.model.Contact;
import com.wanxi.model.Image;
import com.wanxi.service.ContactService;
import com.wanxi.util.JSONCopy;
import com.wanxi.vo.ContactVO;

import java.util.List;

public class ContactServiceImpl implements ContactService {
    ContactDao contactDao=new ContactDaoImpl();
    @Override
    public ResultDTO findAllContact() {
        List<Contact> list=contactDao.findAllContact();
        if(list.size()>0){
            return ResultDTO.getDTO(list.size(),list);
        }
        return ResultDTO.builder().data(list).msg("no data").count(0).code(1).build();
    }

    @Override
    public ResultDTO findContactById(ContactVO contactVO) {
        Contact contact= JSONCopy.copy(contactVO, Contact.class);
        Contact c=contactDao.findContactById(contact);
        if(c!=null){
            return ResultDTO.getDTO(1,c);
        }
        return ResultDTO.builder().count(0).msg("error").code(1).build();
    }

    @Override
    public ResultDTO updateEnable(ContactVO contactVO) {
        Contact contact= JSONCopy.copy(contactVO, Contact.class);
        int i=contactDao.updateEnable(contact);
        if(i==1){
            return ResultDTO.getDTO(i,contactVO);
        }
        return ResultDTO.builder().data(contactVO).count(0).code(1).msg("error").build();
    }

    @Override
    public ResultDTO addContact(ContactVO contactVO) {
        Contact contact= JSONCopy.copy(contactVO, Contact.class);
        int i=contactDao.addContact(contact);
        if(i==1){
            return ResultDTO.getDTO(i,contactVO);
        }
        return ResultDTO.builder().code(1).count(0).msg("error").data(contactVO).build();
    }

    @Override
    public ResultDTO deleteContact(ContactVO contactVO) {
        Contact contact= JSONCopy.copy(contactVO, Contact.class);
        int i=contactDao.deleteContact(contact);
        if(i==1){
            return ResultDTO.getDTO(i,contactVO);
        }
        return ResultDTO.builder().count(0).data(contactVO).code(1).msg("error").build();
    }

    @Override
    public ResultDTO updateContact(ContactVO contactVO) {
        Contact contact= JSONCopy.copy(contactVO, Contact.class);
        int i=contactDao.updateContact(contact);
        if(i==1){
            return ResultDTO.getDTO(i,contactVO);
        }
        return ResultDTO.builder().data(contactVO).count(0).code(1).msg("error").build();

    }
}
